home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / bdatypes.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  34KB  |  1,177 lines

  1. //------------------------------------------------------------------------------
  2. // File: BDATypes.h
  3. //
  4. // Desc: Typedefs and enums needed by both the WDM drivers and the user mode
  5. //       COM interfaces.
  6. //
  7. // Copyright (c) 1999-2001, Microsoft Corporation.  All rights reserved.
  8. //------------------------------------------------------------------------------
  9.  
  10.  
  11. #ifndef _BDATYPES_
  12.  
  13. #define _BDATYPES_      1
  14.  
  15. /////////////////////////////////////////////////////////////////////////////
  16. //
  17. //  Windows XP vs. DirectX 8.0 header merge
  18. //
  19. //  Separate the updated Windows XP version of this header from the downlevel
  20. //  version that shipped with the DirectX 8.0 SDK.  Since development 
  21. //  on BDA technology continued for Windows XP, some changes were made to
  22. //  this file in order to improve the interface and functionality.
  23. //
  24. //  To maintain compatibility with older applications which rely on the
  25. //  DirectX 8.0 versions of these files, the DirectX 8.1 version includes
  26. //  both the Windows XP content and the DirectX 8.0 content, which are 
  27. //  separated by the #if (WINVER >= 0x501) preprocessor directive.
  28. //
  29. //  Therefore, if you define WINVER to be 0x501 to specify Windows XP,
  30. //  the revised content will be compiled.  Otherwise, the original 
  31. //  DirectX 8.0 content will be used.
  32. //
  33. /////////////////////////////////////////////////////////////////////////////
  34.  
  35. #if (WINVER >= 0x501)   // Windows XP content
  36.  
  37.  
  38. /* Utility Macros */
  39.  
  40. #define MIN_DIMENSION   1
  41.  
  42.  
  43. #ifdef __midl
  44. #define V1_ENUM [v1_enum]
  45. #else
  46. #define V1_ENUM
  47. #endif
  48.  
  49. //===========================================================================
  50. //
  51. //  BDA Topology Structures
  52. //
  53. //===========================================================================
  54.  
  55. typedef struct _BDA_TEMPLATE_CONNECTION
  56. {
  57.     ULONG   FromNodeType;
  58.     ULONG   FromNodePinType;
  59.     ULONG   ToNodeType;
  60.     ULONG   ToNodePinType;
  61. }BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
  62.  
  63.  
  64. typedef struct _BDA_TEMPLATE_PIN_JOINT
  65. {
  66.     ULONG   uliTemplateConnection;
  67.     ULONG   ulcInstancesMax;
  68. }BDA_TEMPLATE_PIN_JOINT, *PBDA_TEMPLATE_PIN_JOINT;
  69.  
  70.  
  71.  
  72. //===========================================================================
  73. //
  74. //  BDA Events
  75. //
  76. //===========================================================================
  77.  
  78. //  In-band Event IDs
  79. //
  80. typedef enum {
  81.     BDA_EVENT_SIGNAL_LOSS = 0,
  82.     BDA_EVENT_SIGNAL_LOCK,
  83.     BDA_EVENT_DATA_START,
  84.     BDA_EVENT_DATA_STOP,
  85.     BDA_EVENT_CHANNEL_ACQUIRED,
  86.     BDA_EVENT_CHANNEL_LOST,
  87.     BDA_EVENT_CHANNEL_SOURCE_CHANGED,
  88.     BDA_EVENT_CHANNEL_ACTIVATED,
  89.     BDA_EVENT_CHANNEL_DEACTIVATED,
  90.     BDA_EVENT_SUBCHANNEL_ACQUIRED,
  91.     BDA_EVENT_SUBCHANNEL_LOST,
  92.     BDA_EVENT_SUBCHANNEL_SOURCE_CHANGED,
  93.     BDA_EVENT_SUBCHANNEL_ACTIVATED,
  94.     BDA_EVENT_SUBCHANNEL_DEACTIVATED,
  95.     BDA_EVENT_ACCESS_GRANTED,
  96.     BDA_EVENT_ACCESS_DENIED,
  97.     BDA_EVENT_OFFER_EXTENDED,
  98.     BDA_EVENT_PURCHASE_COMPLETED,
  99.     BDA_EVENT_SMART_CARD_INSERTED,
  100.     BDA_EVENT_SMART_CARD_REMOVED
  101. } BDA_EVENT_ID, *PBDA_EVENT_ID;
  102.  
  103.  
  104.  
  105. //===========================================================================
  106. //
  107. //  KSSTREAM_HEADER extensions for BDA
  108. //
  109. //===========================================================================
  110.  
  111. typedef struct tagKS_BDA_FRAME_INFO {
  112.     ULONG                   ExtendedHeaderSize; // Size of this extended header
  113.     DWORD                   dwFrameFlags;  //
  114.     ULONG                   ulEvent; //
  115.     ULONG                   ulChannelNumber; //
  116.     ULONG                   ulSubchannelNumber; //
  117.     ULONG                   ulReason; //
  118. } KS_BDA_FRAME_INFO, *PKS_BDA_FRAME_INFO;
  119.  
  120.  
  121. //------------------------------------------------------------
  122. //
  123. //  BDA Network Ethernet Filter Property Set
  124. //
  125. // {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
  126. //
  127. typedef struct _BDA_ETHERNET_ADDRESS {
  128.     BYTE    rgbAddress[6];
  129. } BDA_ETHERNET_ADDRESS, *PBDA_ETHERNET_ADDRESS;
  130.  
  131. typedef struct _BDA_ETHERNET_ADDRESS_LIST {
  132.     ULONG               ulcAddresses;
  133.     BDA_ETHERNET_ADDRESS    rgAddressl[MIN_DIMENSION];
  134. } BDA_ETHERNET_ADDRESS_LIST, * PBDA_ETHERNET_ADDRESS_LIST;
  135.  
  136. typedef enum {
  137.     BDA_PROMISCUOUS_MULTICAST = 0,
  138.     BDA_FILTERED_MULTICAST,
  139.     BDA_NO_MULTICAST
  140. } BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
  141.  
  142.  
  143. //------------------------------------------------------------
  144. //
  145. //  BDA Network IPv4 Filter Property Set
  146. //
  147. // {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
  148. //
  149. typedef struct _BDA_IPv4_ADDRESS {
  150.     BYTE    rgbAddress[4];
  151. } BDA_IPv4_ADDRESS, *PBDA_IPv4_ADDRESS;
  152.  
  153. typedef struct _BDA_IPv4_ADDRESS_LIST {
  154.     ULONG               ulcAddresses;
  155.     BDA_IPv4_ADDRESS    rgAddressl[MIN_DIMENSION];
  156. } BDA_IPv4_ADDRESS_LIST, * PBDA_IPv4_ADDRESS_LIST;
  157.  
  158.  
  159. //------------------------------------------------------------
  160. //
  161. //  BDA Network IPv4 Filter Property Set
  162. //
  163. // {E1785A74-2A23-4fb3-9245-A8F88017EF33}
  164. //
  165. typedef struct _BDA_IPv6_ADDRESS {
  166.     BYTE    rgbAddress[6];
  167. } BDA_IPv6_ADDRESS, *PBDA_IPv6_ADDRESS;
  168.  
  169. typedef struct _BDA_IPv6_ADDRESS_LIST {
  170.     ULONG               ulcAddresses;
  171.     BDA_IPv6_ADDRESS    rgAddressl[MIN_DIMENSION];
  172. } BDA_IPv6_ADDRESS_LIST, * PBDA_IPv6_ADDRESS_LIST;
  173.  
  174.  
  175. //------------------------------------------------------------
  176. //
  177. //
  178. //  BDA Signal Property Set
  179. //
  180. //  {D2F1644B-B409-11d2-BC69-00A0C9EE9E16}
  181. //
  182. typedef enum {
  183.     BDA_SIGNAL_UNAVAILABLE = 0,
  184.     BDA_SIGNAL_INACTIVE,
  185.     BDA_SIGNAL_ACTIVE
  186. } BDA_SIGNAL_STATE, * PBDA_SIGNAL_STATE;
  187.  
  188.  
  189. //------------------------------------------------------------
  190. //
  191. //
  192. //  BDA Change Sync Method Set
  193. //
  194. // {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
  195. //
  196. typedef enum
  197. {
  198.     BDA_CHANGES_COMPLETE = 0,
  199.     BDA_CHANGES_PENDING
  200.  
  201. } BDA_CHANGE_STATE, * PBDA_CHANGE_STATE;
  202.  
  203.  
  204. //------------------------------------------------------------
  205. //
  206. //
  207. //  BDA Device Configuration Method Set
  208. //
  209. // {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
  210. //
  211.  
  212.  
  213. //------------------------------------------------------------
  214. //
  215. //
  216. //  BDA Topology Property Set
  217. //
  218. // {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
  219. //
  220.  
  221. typedef struct _BDANODE_DESCRIPTOR
  222. {
  223.     ULONG               ulBdaNodeType;  // The node type as it is used
  224.                                         // in the BDA template topology
  225.  
  226.     GUID                guidFunction;   // GUID from BdaMedia.h describing
  227.                                         // the node's function (e.g.
  228.                                         // KSNODE_BDA_RF_TUNER)
  229.  
  230.     GUID                guidName;       // GUID that can be use to look up
  231.                                         // a displayable name for the node.
  232. } BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
  233.  
  234.  
  235. //------------------------------------------------------------
  236. //
  237. //
  238. //  BDA Void Transform Property Set
  239. //
  240. // {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
  241. //
  242.  
  243.  
  244. //------------------------------------------------------------
  245. //
  246. //
  247. //  BDA Null Transform Property Set
  248. //
  249. // {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
  250. //
  251.  
  252.  
  253. //------------------------------------------------------------
  254. //
  255. //
  256. //  BDA Frequency Filter Property Set
  257. //
  258. // {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
  259. //
  260.  
  261.  
  262. //------------------------------------------------------------
  263. //
  264. //
  265. //  BDA Autodemodulate Property Set
  266. //
  267. // {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
  268. //
  269.  
  270.  
  271. //------------------------------------------------------------
  272. //
  273. //
  274. //  BDA Table Section Property Set
  275. //
  276. // {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
  277. //
  278.  
  279. typedef struct _BDA_TABLE_SECTION
  280. {
  281.     ULONG               ulPrimarySectionId;
  282.     ULONG               ulSecondarySectionId;
  283.     ULONG               ulcbSectionLength;
  284.     ULONG               argbSectionData[MIN_DIMENSION];
  285. } BDA_TABLE_SECTION, *PBDA_TABLE_SECTION;
  286.  
  287.  
  288. //------------------------------------------------------------
  289. //
  290. //
  291. //  BDA PID Filter Property Set
  292. //
  293. // {D0A67D65-08DF-4fec-8533-E5B550410B85}
  294. //
  295.  
  296. //---------------------------------------------------------------------
  297. // From IEnumPIDMap interface
  298. //---------------------------------------------------------------------
  299.  
  300. typedef enum {
  301.     MEDIA_TRANSPORT_PACKET,         //  complete TS packet e.g. pass-through mode
  302.     MEDIA_ELEMENTARY_STREAM,        //  PES payloads; audio/video only
  303.     MEDIA_MPEG2_PSI,                //  PAT, PMT, CAT, Private
  304.     MEDIA_TRANSPORT_PAYLOAD         //  gathered TS packet payloads (PES packets, etc...)
  305. } MEDIA_SAMPLE_CONTENT ;
  306.  
  307. typedef struct {
  308.     ULONG                   ulPID ;
  309.     MEDIA_SAMPLE_CONTENT    MediaSampleContent ;
  310. } PID_MAP ;
  311.  
  312. typedef struct _BDA_PID_MAP
  313. {
  314.     MEDIA_SAMPLE_CONTENT    MediaSampleContent;
  315.     ULONG                   ulcPIDs;
  316.     ULONG                   aulPIDs[MIN_DIMENSION];
  317. } BDA_PID_MAP, *PBDA_PID_MAP;
  318.  
  319. typedef struct _BDA_PID_UNMAP
  320. {
  321.     ULONG               ulcPIDs;
  322.     ULONG               aulPIDs[MIN_DIMENSION];
  323. } BDA_PID_UNMAP, *PBDA_PID_UNMAP;
  324.  
  325.  
  326. //------------------------------------------------------------
  327. //
  328. //
  329. //  BDA CA Property Set
  330. //
  331. // {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
  332. //
  333. typedef struct _BDA_CA_MODULE_UI
  334. {
  335.     ULONG   ulFormat;
  336.     ULONG   ulbcDesc;
  337.     ULONG   ulDesc[MIN_DIMENSION];
  338. } BDA_CA_MODULE_UI, *PBDA_CA_MODULE_UI;
  339.  
  340. typedef struct _BDA_PROGRAM_PID_LIST
  341. {
  342.     ULONG   ulProgramNumber;
  343.     ULONG   ulcPIDs;
  344.     ULONG   ulPID[MIN_DIMENSION];
  345. } BDA_PROGRAM_PID_LIST, *PBDA_PROGRAM_PID_LIST;
  346.  
  347.  
  348. //------------------------------------------------------------
  349. //
  350. //
  351. //  BDA CA Event Set
  352. //
  353. // {488C4CCC-B768-4129-8EB1-B00A071F9068}
  354. //
  355.  
  356.  
  357.  
  358. //=============================================================
  359. //
  360. //
  361. //  BDA Tuning Model enumerations
  362. //
  363. //
  364. //=============================================================
  365.  
  366. // system type for particular DVB Tuning Space instance
  367. typedef enum DVBSystemType {
  368.     DVB_Cable,
  369.     DVB_Terrestrial,
  370.     DVB_Satellite,
  371. } DVBSystemType;
  372.  
  373. //------------------------------------------------------------
  374. //
  375. //  BDA Channel Tune Request
  376.  
  377. V1_ENUM enum {
  378.     BDA_UNDEFINED_CHANNEL = -1,
  379. };
  380.  
  381.  
  382. //------------------------------------------------------------
  383. //
  384. //  BDA Component(substream)
  385. //
  386.  
  387. typedef V1_ENUM enum ComponentCategory
  388. {
  389.     CategoryNotSet = -1,
  390.     CategoryOther = 0,
  391.     CategoryVideo,
  392.     CategoryAudio,
  393.     CategoryText,
  394.     CategoryData,
  395. } ComponentCategory;
  396.  
  397. // Component Status
  398. typedef enum ComponentStatus
  399. {
  400.     StatusActive,
  401.     StatusInactive,
  402.     StatusUnavailable,
  403. } ComponentStatus;
  404.  
  405.  
  406. //------------------------------------------------------------
  407. //
  408. //  BDA MPEG2 Component Type
  409. //
  410. // from the MPEG2 specification
  411. typedef V1_ENUM enum MPEG2StreamType {
  412.     BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
  413.     Reserved1 = 0x0,
  414.     ISO_IEC_11172_2_VIDEO   = Reserved1 + 1,
  415.     ISO_IEC_13818_2_VIDEO   = ISO_IEC_11172_2_VIDEO + 1,
  416.     ISO_IEC_11172_3_AUDIO   = ISO_IEC_13818_2_VIDEO + 1,
  417.     ISO_IEC_13818_3_AUDIO   = ISO_IEC_11172_3_AUDIO + 1,
  418.     ISO_IEC_13818_1_PRIVATE_SECTION = ISO_IEC_13818_3_AUDIO + 1,
  419.     ISO_IEC_13818_1_PES     = ISO_IEC_13818_1_PRIVATE_SECTION + 1,
  420.     ISO_IEC_13522_MHEG      = ISO_IEC_13818_1_PES + 1,
  421.     ANNEX_A_DSM_CC          = ISO_IEC_13522_MHEG + 1,
  422.     ITU_T_REC_H_222_1       = ANNEX_A_DSM_CC + 1,
  423.     ISO_IEC_13818_6_TYPE_A  = ITU_T_REC_H_222_1 + 1,
  424.     ISO_IEC_13818_6_TYPE_B  = ISO_IEC_13818_6_TYPE_A + 1,
  425.     ISO_IEC_13818_6_TYPE_C  = ISO_IEC_13818_6_TYPE_B + 1,
  426.     ISO_IEC_13818_6_TYPE_D  = ISO_IEC_13818_6_TYPE_C + 1,
  427.     ISO_IEC_13818_1_AUXILIARY = ISO_IEC_13818_6_TYPE_D + 1,
  428.     ISO_IEC_13818_1_RESERVED = ISO_IEC_13818_1_AUXILIARY + 1,
  429.     USER_PRIVATE            = ISO_IEC_13818_1_RESERVED + 1
  430. } MPEG2StreamType;
  431.  
  432. //------------------------------------------------------------
  433. //
  434. //  mpeg-2 transport stride format block; associated with media
  435. //   types MEDIATYPE_Stream/MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE;
  436. //   *all* format blocks associated with above media type *must*
  437. //   start with the MPEG2_TRANSPORT_STRIDE structure
  438. //
  439.  
  440. typedef struct _MPEG2_TRANSPORT_STRIDE {
  441.     DWORD   dwOffset ;
  442.     DWORD   dwPacketLength ;
  443.     DWORD   dwStride ;
  444. } MPEG2_TRANSPORT_STRIDE, *PMPEG2_TRANSPORT_STRIDE ;
  445.  
  446. //------------------------------------------------------------
  447. //
  448. //  BDA ATSC Component Type
  449. //
  450. //
  451. // ATSC made AC3 Audio a descriptor instead of
  452. // defining a user private stream type.
  453. typedef enum ATSCComponentTypeFlags {
  454.     // bit flags for various component type properties
  455.     ATSCCT_AC3 = 0x00000001,
  456. } ATSCComponentTypeFlags;
  457.  
  458.  
  459. //------------------------------------------------------------
  460. //
  461. //  BDA Locators
  462. //
  463.  
  464.  
  465. typedef V1_ENUM enum BinaryConvolutionCodeRate {
  466.     BDA_BCC_RATE_NOT_SET = -1,
  467.     BDA_BCC_RATE_NOT_DEFINED = 0,
  468.     BDA_BCC_RATE_1_2 = 1,   // 1/2
  469.     BDA_BCC_RATE_2_3,   // 2/3
  470.     BDA_BCC_RATE_3_4,   // 3/4
  471.     BDA_BCC_RATE_3_5,
  472.     BDA_BCC_RATE_4_5,
  473.     BDA_BCC_RATE_5_6,   // 5/6
  474.     BDA_BCC_RATE_5_11,
  475.     BDA_BCC_RATE_7_8,   // 7/8
  476.     BDA_BCC_RATE_MAX,
  477. } BinaryConvolutionCodeRate;
  478.  
  479. typedef V1_ENUM enum FECMethod {
  480.     BDA_FEC_METHOD_NOT_SET = -1,
  481.     BDA_FEC_METHOD_NOT_DEFINED = 0,
  482.     BDA_FEC_VITERBI = 1,          // FEC is a Viterbi Binary Convolution.
  483.     BDA_FEC_RS_204_188,       // The FEC is Reed-Solomon 204/188 (outer FEC)
  484.     BDA_FEC_MAX,
  485. } FECMethod;
  486.  
  487. typedef V1_ENUM enum ModulationType {
  488.     BDA_MOD_NOT_SET = -1,
  489.     BDA_MOD_NOT_DEFINED = 0,
  490.     BDA_MOD_16QAM = 1,
  491.     BDA_MOD_32QAM,
  492.     BDA_MOD_64QAM,
  493.     BDA_MOD_80QAM,
  494.     BDA_MOD_96QAM,
  495.     BDA_MOD_112QAM,
  496.     BDA_MOD_128QAM,
  497.     BDA_MOD_160QAM,
  498.     BDA_MOD_192QAM,
  499.     BDA_MOD_224QAM,
  500.     BDA_MOD_256QAM,
  501.     BDA_MOD_320QAM,
  502.     BDA_MOD_384QAM,
  503.     BDA_MOD_448QAM,
  504.     BDA_MOD_512QAM,
  505.     BDA_MOD_640QAM,
  506.     BDA_MOD_768QAM,
  507.     BDA_MOD_896QAM,
  508.     BDA_MOD_1024QAM,
  509.     BDA_MOD_QPSK,
  510.     BDA_MOD_BPSK,
  511.     BDA_MOD_OQPSK,
  512.     BDA_MOD_8VSB,
  513.     BDA_MOD_16VSB,
  514.     BDA_MOD_ANALOG_AMPLITUDE,  // std am
  515.     BDA_MOD_ANALOG_FREQUENCY,  // std fm
  516.     BDA_MOD_MAX,
  517. } ModulationType;
  518.  
  519. typedef V1_ENUM enum SpectralInversion {
  520.     BDA_SPECTRAL_INVERSION_NOT_SET = -1,
  521.     BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
  522.     BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
  523.     BDA_SPECTRAL_INVERSION_NORMAL,
  524.     BDA_SPECTRAL_INVERSION_INVERTED,
  525.     BDA_SPECTRAL_INVERSION_MAX
  526. } SpectralInversion;
  527.  
  528. typedef V1_ENUM enum Polarisation {
  529.     BDA_POLARISATION_NOT_SET = -1,
  530.     BDA_POLARISATION_NOT_DEFINED = 0,
  531.     BDA_POLARISATION_LINEAR_H = 1, // Linear horizontal polarisation
  532.     BDA_POLARISATION_LINEAR_V, // Linear vertical polarisation
  533.     BDA_POLARISATION_CIRCULAR_L, // Circular left polarisation
  534.     BDA_POLARISATION_CIRCULAR_R, // Circular right polarisation
  535.     BDA_POLARISATION_MAX,
  536. } Polarisation;
  537.  
  538. typedef V1_ENUM enum GuardInterval {
  539.     BDA_GUARD_NOT_SET = -1,
  540.     BDA_GUARD_NOT_DEFINED = 0,
  541.     BDA_GUARD_1_32 = 1, // Guard interval is 1/32
  542.     BDA_GUARD_1_16, // Guard interval is 1/16
  543.     BDA_GUARD_1_8, // Guard interval is 1/8
  544.     BDA_GUARD_1_4, // Guard interval is 1/4
  545.     BDA_GUARD_MAX,
  546. } GuardInterval;
  547.  
  548. typedef V1_ENUM enum HierarchyAlpha {
  549.     BDA_HALPHA_NOT_SET = -1,
  550.     BDA_HALPHA_NOT_DEFINED = 0,
  551.     BDA_HALPHA_1 = 1, // Hierarchy alpha is 1.
  552.     BDA_HALPHA_2, // Hierarchy alpha is 2.
  553.     BDA_HALPHA_4, // Hierarchy alpha is 4.
  554.     BDA_HALPHA_MAX,
  555. } HierarchyAlpha;
  556.  
  557. typedef V1_ENUM enum TransmissionMode {
  558.     BDA_XMIT_MODE_NOT_SET = -1,
  559.     BDA_XMIT_MODE_NOT_DEFINED = 0,
  560.     BDA_XMIT_MODE_2K = 1, // Transmission uses 1705 carriers (use a 2K FFT)
  561.     BDA_XMIT_MODE_8K, // Transmission uses 6817 carriers (use an 8K FFT)
  562.     BDA_XMIT_MODE_MAX,
  563. } TransmissionMode;
  564.  
  565. //  Settings for Tuner Frequency
  566. //
  567. #define BDA_FREQUENCY_NOT_SET       -1
  568. #define BDA_FREQUENCY_NOT_DEFINED   0
  569.  
  570. //  Settings for Tuner Range
  571. //
  572. //  Tuner range refers to the setting of LNB High/Low as well as the
  573. //  selection of a satellite on a multiple satellite switch.
  574. //
  575. #define BDA_RANGE_NOT_SET       -1
  576. #define BDA_RANGE_NOT_DEFINED   0
  577.  
  578. //  Settings for Tuner Channel Bandwidth
  579. //
  580. #define BDA_CHAN_BANDWITH_NOT_SET       -1
  581. #define BDA_CHAN_BANDWITH_NOT_DEFINED   0
  582.  
  583. //  Settings for Tuner Frequency Multiplier
  584. //
  585. #define BDA_FREQUENCY_MULTIPLIER_NOT_SET        -1
  586. #define BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED    0 
  587.  
  588.  
  589.  
  590. /////////////////////////////////////////////////////////////////////////////
  591. //
  592. //  Windows XP vs. DirectX 8.0 header merge
  593. //
  594. //  The following is the original contents of this header from
  595. //  the DirectX 8.0 SDK.
  596. //
  597. /////////////////////////////////////////////////////////////////////////////
  598.  
  599. #else  // DirectX 8.0 content
  600.  
  601.     /* Utility Macros */
  602.  
  603.     #define MIN_DIMENSION   1
  604.     #define NATURAL     4
  605.     #define CACHE_LINE  128
  606.     #define PAGE        4096
  607.     #define ALIGN( pointer, size) (((ULONG)(pointer) + (ULONG)(size) - 1) & ~((ULONG)(size) - 1))
  608.     #define BDA_STRING_CONST(x)   {sizeof(L##x)-2, sizeof(L##x), L##x}
  609.  
  610.  
  611.     #ifdef __midl
  612.     #define V1_ENUM [v1_enum]
  613.     #else
  614.     #define V1_ENUM
  615.     #endif
  616.  
  617.     //===========================================================================
  618.     //
  619.     //  BDA Topology Structures
  620.     //
  621.     //===========================================================================
  622.  
  623.     typedef struct _BDA_TEMPLATE_CONNECTION
  624.     {
  625.         ULONG   FromNodeType;
  626.         ULONG   FromNodePinType;
  627.         ULONG   ToNodeType;
  628.         ULONG   ToNodePinType;
  629.     }BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
  630.  
  631.  
  632.     typedef struct _BDA_TEMPLATE_PIN_JOINT
  633.     {
  634.         ULONG   uliTemplateConnection;
  635.         ULONG   ulcInstancesMax;
  636.     }BDA_TEMPLATE_PIN_JOINT, *PBDA_TEMPLATE_PIN_JOINT;
  637.  
  638.  
  639.  
  640.     //===========================================================================
  641.     //
  642.     //  BDA Events
  643.     //
  644.     //===========================================================================
  645.  
  646.     //  In-band Event IDs
  647.     //
  648.     typedef enum {
  649.         BDA_EVENT_SIGNAL_LOSS = 0,
  650.         BDA_EVENT_SIGNAL_LOCK,
  651.         BDA_EVENT_DATA_START,
  652.         BDA_EVENT_DATA_STOP,
  653.         BDA_EVENT_CHANNEL_ACQUIRED,
  654.         BDA_EVENT_CHANNEL_LOST,
  655.         BDA_EVENT_CHANNEL_SOURCE_CHANGED,
  656.         BDA_EVENT_CHANNEL_ACTIVATED,
  657.         BDA_EVENT_CHANNEL_DEACTIVATED,
  658.         BDA_EVENT_SUBCHANNEL_ACQUIRED,
  659.         BDA_EVENT_SUBCHANNEL_LOST,
  660.         BDA_EVENT_SUBCHANNEL_SOURCE_CHANGED,
  661.         BDA_EVENT_SUBCHANNEL_ACTIVATED,
  662.         BDA_EVENT_SUBCHANNEL_DEACTIVATED,
  663.         BDA_EVENT_ACCESS_GRANTED,
  664.         BDA_EVENT_ACCESS_DENIED,
  665.         BDA_EVENT_OFFER_EXTENDED,
  666.         BDA_EVENT_PURCHASE_COMPLETED,
  667.         BDA_EVENT_SMART_CARD_INSERTED,
  668.         BDA_EVENT_SMART_CARD_REMOVED
  669.     } BDA_EVENT_ID, *PBDA_EVENT_ID;
  670.  
  671.  
  672.  
  673.     //===========================================================================
  674.     //
  675.     //  KSSTREAM_HEADER extensions for BDA
  676.     //
  677.     //===========================================================================
  678.  
  679.     typedef struct tagKS_BDA_FRAME_INFO {
  680.         ULONG                   ExtendedHeaderSize; // Size of this extended header
  681.         DWORD                   dwFrameFlags;  //
  682.         ULONG                   ulEvent; //
  683.         ULONG                   ulChannelNumber; //
  684.         ULONG                   ulSubchannelNumber; //
  685.         ULONG                   ulReason; //
  686.     } KS_BDA_FRAME_INFO, *PKS_BDA_FRAME_INFO;
  687.  
  688.  
  689.     //------------------------------------------------------------
  690.     //
  691.     //  BDA Network Ethernet Filter Property Set
  692.     //
  693.     // {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
  694.     //
  695.     typedef struct _BDA_ETHERNET_ADDRESS {
  696.         BYTE    rgbAddress[6];
  697.     } BDA_ETHERNET_ADDRESS, *PBDA_ETHERNET_ADDRESS;
  698.  
  699.     typedef struct _BDA_ETHERNET_ADDRESS_LIST {
  700.         ULONG               ulcAddresses;
  701.         BDA_ETHERNET_ADDRESS    rgAddressl[MIN_DIMENSION];
  702.     } BDA_ETHERNET_ADDRESS_LIST, * PBDA_ETHERNET_ADDRESS_LIST;
  703.  
  704.     typedef enum {
  705.         BDA_PROMISCUOUS_MULTICAST = 0,
  706.         BDA_FILTERED_MULTICAST,
  707.         BDA_NO_MULTICAST
  708.     } BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
  709.  
  710.  
  711.     //------------------------------------------------------------
  712.     //
  713.     //  BDA Network IPv4 Filter Property Set
  714.     //
  715.     // {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
  716.     //
  717.     typedef struct _BDA_IPv4_ADDRESS {
  718.         BYTE    rgbAddress[4];
  719.     } BDA_IPv4_ADDRESS, *PBDA_IPv4_ADDRESS;
  720.  
  721.     typedef struct _BDA_IPv4_ADDRESS_LIST {
  722.         ULONG               ulcAddresses;
  723.         BDA_IPv4_ADDRESS    rgAddressl[MIN_DIMENSION];
  724.     } BDA_IPv4_ADDRESS_LIST, * PBDA_IPv4_ADDRESS_LIST;
  725.  
  726.  
  727.     //------------------------------------------------------------
  728.     //
  729.     //  BDA Network IPv4 Filter Property Set
  730.     //
  731.     // {E1785A74-2A23-4fb3-9245-A8F88017EF33}
  732.     //
  733.     typedef struct _BDA_IPv6_ADDRESS {
  734.         BYTE    rgbAddress[6];
  735.     } BDA_IPv6_ADDRESS, *PBDA_IPv6_ADDRESS;
  736.  
  737.     typedef struct _BDA_IPv6_ADDRESS_LIST {
  738.         ULONG               ulcAddresses;
  739.         BDA_IPv6_ADDRESS    rgAddressl[MIN_DIMENSION];
  740.     } BDA_IPv6_ADDRESS_LIST, * PBDA_IPv6_ADDRESS_LIST;
  741.  
  742.  
  743.     //------------------------------------------------------------
  744.     //
  745.     //
  746.     //  BDA Signal Property Set
  747.     //
  748.     //  {D2F1644B-B409-11d2-BC69-00A0C9EE9E16}
  749.     //
  750.     typedef enum {
  751.         BDA_SIGNAL_UNAVAILABLE = 0,
  752.         BDA_SIGNAL_INACTIVE,
  753.         BDA_SIGNAL_ACTIVE
  754.     } BDA_SIGNAL_STATE, * PBDA_SIGNAL_STATE;
  755.  
  756.  
  757.     //------------------------------------------------------------
  758.     //
  759.     //
  760.     //  BDA Change Sync Method Set
  761.     //
  762.     // {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
  763.     //
  764.     typedef enum
  765.     {
  766.         BDA_CHANGES_COMPLETE = 0,
  767.         BDA_CHANGES_PENDING
  768.  
  769.     } BDA_CHANGE_STATE, * PBDA_CHANGE_STATE;
  770.  
  771.  
  772.     //------------------------------------------------------------
  773.     //
  774.     //
  775.     //  BDA Device Configuration Method Set
  776.     //
  777.     // {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
  778.     //
  779.  
  780.  
  781.     //------------------------------------------------------------
  782.     //
  783.     //
  784.     //  BDA Topology Property Set
  785.     //
  786.     // {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
  787.     //
  788.  
  789.     typedef struct _BDANODE_DESCRIPTOR
  790.     {
  791.         ULONG               ulBdaNodeType;  // The node type as it is used
  792.                                             // in the BDA template topology
  793.  
  794.         GUID                guidFunction;   // GUID from BdaMedia.h describing
  795.                                             // the node's function (e.g.
  796.                                             // KSNODE_BDA_RF_TUNER)
  797.  
  798.         GUID                guidName;       // GUID that can be use to look up
  799.                                             // a displayable name for the node.
  800.     } BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
  801.  
  802.  
  803.     //------------------------------------------------------------
  804.     //
  805.     //
  806.     //  BDA Void Transform Property Set
  807.     //
  808.     // {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
  809.     //
  810.  
  811.  
  812.     //------------------------------------------------------------
  813.     //
  814.     //
  815.     //  BDA Null Transform Property Set
  816.     //
  817.     // {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
  818.     //
  819.  
  820.  
  821.     //------------------------------------------------------------
  822.     //
  823.     //
  824.     //  BDA Frequency Filter Property Set
  825.     //
  826.     // {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
  827.     //
  828.  
  829.  
  830.     //------------------------------------------------------------
  831.     //
  832.     //
  833.     //  BDA Autodemodulate Property Set
  834.     //
  835.     // {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
  836.     //
  837.  
  838.  
  839.     //------------------------------------------------------------
  840.     //
  841.     //
  842.     //  BDA PmtProcessor Property Set
  843.     //
  844.     // {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
  845.     //
  846.  
  847.     typedef struct _BDA_PMT
  848.     {
  849.         ULONG               ulTableID;
  850.         ULONG               ulcbSectionLength;
  851.         ULONG               argbSectionData[MIN_DIMENSION];
  852.     } BDA_PMT, *PBDA_PMT;
  853.  
  854.     //------------------------------------------------------------
  855.     //
  856.     //
  857.     //  BDA Descriptor Property Set
  858.     //
  859.     // {DE6A1C9E-87DF-48aa-95AA-289B7AA4F49F}
  860.     //
  861.  
  862.     typedef struct _BDA_CAT_DESCRIPTOR
  863.     {
  864.         ULONG               ulTag;
  865.         ULONG               ulcbLength;
  866.         ULONG               argbData[MIN_DIMENSION];
  867.     } BDA_CAT_DESCRIPTOR, *PBDA_CAT_DESCRIPTOR;
  868.  
  869.     typedef struct _BDA_ES_DESCRIPTOR
  870.     {
  871.         ULONG               ulProgramNum;
  872.         ULONG               ulContentPID;
  873.         ULONG               ulTag;
  874.         ULONG               ulcbLength;
  875.         ULONG               argbData[MIN_DIMENSION];
  876.     } BDA_ES_DESCRIPTOR, *PBDA_ES_DESCRIPTOR;
  877.  
  878.     typedef struct _BDA_PROGRAM_DESCRIPTOR
  879.     {
  880.         ULONG               ulProgramNum;
  881.         ULONG               ulTag;
  882.         ULONG               ulcbLength;
  883.         ULONG               argbData[MIN_DIMENSION];
  884.     } BDA_PROGRAM_DESCRIPTOR, *PBDA_PROGRAM_DESCRIPTOR;
  885.  
  886.  
  887.     //------------------------------------------------------------
  888.     //
  889.     //
  890.     //  BDA EsMap Property Set
  891.     //
  892.     // {FA14A8B3-6068-48ef-96DD-53010B985A7D}
  893.     //
  894.  
  895.     typedef enum
  896.     {
  897.         ES_MAP_STATE_GOOD_FLOW = 0,
  898.         ES_MAP_STATE_NO_CONTENT,
  899.         ES_MAP_STATE_NO_ECM,
  900.         ES_MAP_STATE_BAD_MAP
  901.     } BDA_ES_MAP_STATE, *PBDA_ES_MAP_STATE;
  902.  
  903.     typedef struct _BDA_ES_MAP
  904.     {
  905.         ULONG               ulContentPID;
  906.         ULONG               ulProgramNum;
  907.         ULONG               ulStreamType;
  908.         BDA_ES_MAP_STATE    mapState;
  909.     } BDA_ES_MAP, *PBDA_ES_MAP;
  910.  
  911.  
  912.     //------------------------------------------------------------
  913.     //
  914.     //
  915.     //  BDA PID Filter Property Set
  916.     //
  917.     // {D0A67D65-08DF-4fec-8533-E5B550410B85}
  918.     //
  919.  
  920.     //---------------------------------------------------------------------
  921.     // From IEnumPIDMap interface
  922.     //---------------------------------------------------------------------
  923.  
  924.     typedef enum {
  925.         MEDIA_TRANSPORT_PACKET,         //  complete TS packet e.g. pass-through mode
  926.         MEDIA_ELEMENTARY_STREAM,        //  PES payloads; audio/video only
  927.         MEDIA_MPEG2_PSI,                //  PAT, PMT, CAT, Private
  928.         MEDIA_TRANSPORT_PAYLOAD         //  gathered TS packet payloads (PES packets, etc...)
  929.     } MEDIA_SAMPLE_CONTENT ;
  930.  
  931.     typedef struct {
  932.         ULONG                   ulPID ;
  933.         MEDIA_SAMPLE_CONTENT    MediaSampleContent ;
  934.     } PID_MAP ;
  935.  
  936.     typedef struct _BDA_PID_MAP
  937.     {
  938.         MEDIA_SAMPLE_CONTENT    MediaSampleContent;
  939.         ULONG                   ulcPIDs;
  940.         ULONG                   aulPIDs[MIN_DIMENSION];
  941.     } BDA_PID_MAP, *PBDA_PID_MAP;
  942.  
  943.     typedef struct _BDA_PID_UNMAP
  944.     {
  945.         ULONG               ulcPIDs;
  946.         ULONG               aulPIDs[MIN_DIMENSION];
  947.     } BDA_PID_UNMAP, *PBDA_PID_UNMAP;
  948.  
  949.  
  950.     //------------------------------------------------------------
  951.     //
  952.     //
  953.     //  BDA CA Property Set
  954.     //
  955.     // {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
  956.     //
  957.     typedef struct _BDA_CA_MODULE_UI
  958.     {
  959.         ULONG   ulFormat;
  960.         ULONG   ulbcDesc;
  961.         ULONG   ulDesc[MIN_DIMENSION];
  962.     } BDA_CA_MODULE_UI, *PBDA_CA_MODULE_UI;
  963.  
  964.  
  965.     //------------------------------------------------------------
  966.     //
  967.     //
  968.     //  BDA CA Event Set
  969.     //
  970.     // {488C4CCC-B768-4129-8EB1-B00A071F9068}
  971.     //
  972.  
  973.  
  974.  
  975.     //=============================================================
  976.     //
  977.     //
  978.     //  BDA Tuning Model enumerations
  979.     //
  980.     //
  981.     //=============================================================
  982.  
  983.     // system type for particular DVB Tuning Space instance
  984.     typedef enum DVBSystemType {
  985.         DVB_Cable,
  986.         DVB_Terrestrial,
  987.         DVB_Satellite,
  988.     } DVBSystemType;
  989.  
  990.     //------------------------------------------------------------
  991.     //
  992.     //  BDA Channel Tune Request
  993.  
  994.     V1_ENUM enum {
  995.         BDA_UNDEFINED_CHANNEL = -1,
  996.     };
  997.  
  998.  
  999.     //------------------------------------------------------------
  1000.     //
  1001.     //  BDA Component(substream)
  1002.     //
  1003.  
  1004.     typedef V1_ENUM enum ComponentCategory
  1005.     {
  1006.         CategoryNotSet = -1,
  1007.         CategoryOther = 0,
  1008.         CategoryVideo,
  1009.         CategoryAudio,
  1010.         CategoryText,
  1011.         CategoryData,
  1012.     } ComponentCategory;
  1013.  
  1014.     // Component Status
  1015.     typedef enum ComponentStatus
  1016.     {
  1017.         StatusActive,
  1018.         StatusInactive,
  1019.         StatusUnavailable,
  1020.     } ComponentStatus;
  1021.  
  1022.  
  1023.     //------------------------------------------------------------
  1024.     //
  1025.     //  BDA MPEG2 Component Type
  1026.     //
  1027.     // from the MPEG2 specification
  1028.     typedef V1_ENUM enum MPEG2StreamType {
  1029.         BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
  1030.         Reserved1 = 0x0,
  1031.         ISO_IEC_11172_2_VIDEO   = Reserved1 + 1,
  1032.         ISO_IEC_13818_2_VIDEO   = ISO_IEC_11172_2_VIDEO + 1,
  1033.         ISO_IEC_11172_3_AUDIO   = ISO_IEC_13818_2_VIDEO + 1,
  1034.         ISO_IEC_13818_3_AUDIO   = ISO_IEC_11172_3_AUDIO + 1,
  1035.         ISO_IEC_13818_1_PRIVATE_SECTION = ISO_IEC_13818_3_AUDIO + 1,
  1036.         ISO_IEC_13818_1_PES     = ISO_IEC_13818_1_PRIVATE_SECTION + 1,
  1037.         ISO_IEC_13522_MHEG      = ISO_IEC_13818_1_PES + 1,
  1038.         ANNEX_A_DSM_CC          = ISO_IEC_13522_MHEG + 1,
  1039.         ITU_T_REC_H_222_1       = ANNEX_A_DSM_CC + 1,
  1040.         ISO_IEC_13818_6_TYPE_A  = ITU_T_REC_H_222_1 + 1,
  1041.         ISO_IEC_13818_6_TYPE_B  = ISO_IEC_13818_6_TYPE_A + 1,
  1042.         ISO_IEC_13818_6_TYPE_C  = ISO_IEC_13818_6_TYPE_B + 1,
  1043.         ISO_IEC_13818_6_TYPE_D  = ISO_IEC_13818_6_TYPE_C + 1,
  1044.         ISO_IEC_13818_1_AUXILIARY = ISO_IEC_13818_6_TYPE_D + 1,
  1045.         ISO_IEC_13818_1_RESERVED = ISO_IEC_13818_1_AUXILIARY + 1,
  1046.         USER_PRIVATE            = ISO_IEC_13818_1_RESERVED + 1
  1047.     } MPEG2StreamType;
  1048.  
  1049.  
  1050.     //------------------------------------------------------------
  1051.     //
  1052.     //  BDA ATSC Component Type
  1053.     //
  1054.     //
  1055.     // ATSC made AC3 Audio a descriptor instead of
  1056.     // defining a user private stream type.
  1057.     typedef enum ATSCComponentTypeFlags {
  1058.         // bit flags for various component type properties
  1059.         ATSCCT_AC3 = 0x00000001,
  1060.     } ATSCComponentTypeFlags;
  1061.  
  1062.  
  1063.     //------------------------------------------------------------
  1064.     //
  1065.     //  BDA Locators
  1066.     //
  1067.  
  1068.  
  1069.     typedef V1_ENUM enum BinaryConvolutionCodeRate {
  1070.         BDA_BCC_RATE_NOT_SET = -1,
  1071.         BDA_BCC_RATE_NOT_DEFINED = 0,
  1072.         BDA_BCC_RATE_1_2 = 1,   // 1/2
  1073.         BDA_BCC_RATE_2_3,   // 2/3
  1074.         BDA_BCC_RATE_3_4,   // 3/4
  1075.         BDA_BCC_RATE_3_5,
  1076.         BDA_BCC_RATE_4_5,
  1077.         BDA_BCC_RATE_5_6,   // 5/6
  1078.         BDA_BCC_RATE_5_11,
  1079.         BDA_BCC_RATE_7_8,   // 7/8
  1080.         BDA_BCC_RATE_MAX,
  1081.     } BinaryConvolutionCodeRate;
  1082.  
  1083.     typedef V1_ENUM enum FECMethod {
  1084.         BDA_FEC_METHOD_NOT_SET = -1,
  1085.         BDA_FEC_METHOD_NOT_DEFINED = 0,
  1086.         BDA_FEC_VITERBI = 1,          // FEC is a Viterbi Binary Convolution.
  1087.         BDA_FEC_RS_204_188,       // The FEC is Reed-Solomon 204/188 (outer FEC)
  1088.         BDA_FEC_MAX,
  1089.     } FECMethod;
  1090.  
  1091.     typedef V1_ENUM enum ModulationType {
  1092.         BDA_MOD_NOT_SET = -1,
  1093.         BDA_MOD_NOT_DEFINED = 0,
  1094.         BDA_MOD_16QAM = 1,
  1095.         BDA_MOD_32QAM,
  1096.         BDA_MOD_64QAM,
  1097.         BDA_MOD_80QAM,
  1098.         BDA_MOD_96QAM,
  1099.         BDA_MOD_112QAM,
  1100.         BDA_MOD_128QAM,
  1101.         BDA_MOD_160QAM,
  1102.         BDA_MOD_192QAM,
  1103.         BDA_MOD_224QAM,
  1104.         BDA_MOD_256QAM,
  1105.         BDA_MOD_320QAM,
  1106.         BDA_MOD_384QAM,
  1107.         BDA_MOD_448QAM,
  1108.         BDA_MOD_512QAM,
  1109.         BDA_MOD_640QAM,
  1110.         BDA_MOD_768QAM,
  1111.         BDA_MOD_896QAM,
  1112.         BDA_MOD_1024QAM,
  1113.         BDA_MOD_QPSK,
  1114.         BDA_MOD_BPSK,
  1115.         BDA_MOD_OQPSK,
  1116.         BDA_MOD_8VSB,
  1117.         BDA_MOD_16VSB,
  1118.         BDA_MOD_ANALOG_AMPLITUDE,  // std am
  1119.         BDA_MOD_ANALOG_FREQUENCY,  // std fm
  1120.         BDA_MOD_MAX,
  1121.     } ModulationType;
  1122.  
  1123.     typedef V1_ENUM enum SpectralInversion {
  1124.         BDA_SPECTRAL_INVERSION_NOT_SET = -1,
  1125.         BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
  1126.         BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
  1127.         BDA_SPECTRAL_INVERSION_NORMAL,
  1128.         BDA_SPECTRAL_INVERSION_INVERTED,
  1129.         BDA_SPECTRAL_INVERSION_MAX
  1130.     } SpectralInversion;
  1131.  
  1132.     typedef V1_ENUM enum Polarisation {
  1133.         BDA_POLARISATION_NOT_SET = -1,
  1134.         BDA_POLARISATION_NOT_DEFINED = 0,
  1135.         BDA_POLARISATION_LINEAR_H = 1, // Linear horizontal polarisation
  1136.         BDA_POLARISATION_LINEAR_V, // Linear vertical polarisation
  1137.         BDA_POLARISATION_CIRCULAR_L, // Circular left polarisation
  1138.         BDA_POLARISATION_CIRCULAR_R, // Circular right polarisation
  1139.         BDA_POLARISATION_MAX,
  1140.     } Polarisation;
  1141.  
  1142.     typedef V1_ENUM enum GuardInterval {
  1143.         BDA_GUARD_NOT_SET = -1,
  1144.         BDA_GUARD_NOT_DEFINED = 0,
  1145.         BDA_GUARD_1_32 = 1, // Guard interval is 1/32
  1146.         BDA_GUARD_1_16, // Guard interval is 1/16
  1147.         BDA_GUARD_1_8, // Guard interval is 1/8
  1148.         BDA_GUARD_1_4, // Guard interval is 1/4
  1149.         BDA_GUARD_MAX,
  1150.     } GuardInterval;
  1151.  
  1152.     typedef V1_ENUM enum HierarchyAlpha {
  1153.         BDA_HALPHA_NOT_SET = -1,
  1154.         BDA_HALPHA_NOT_DEFINED = 0,
  1155.         BDA_HALPHA_1 = 1, // Hierarchy alpha is 1.
  1156.         BDA_HALPHA_2, // Hierarchy alpha is 2.
  1157.         BDA_HALPHA_4, // Hierarchy alpha is 4.
  1158.         BDA_HALPHA_MAX,
  1159.     } HierarchyAlpha;
  1160.  
  1161.     typedef V1_ENUM enum TransmissionMode {
  1162.         BDA_XMIT_MODE_NOT_SET = -1,
  1163.         BDA_XMIT_MODE_NOT_DEFINED = 0,
  1164.         BDA_XMIT_MODE_2K = 1, // Transmission uses 1705 carriers (use a 2K FFT)
  1165.         BDA_XMIT_MODE_8K, // Transmission uses 6817 carriers (use an 8K FFT)
  1166.         BDA_XMIT_MODE_MAX,
  1167.     } TransmissionMode;
  1168.  
  1169.  
  1170.  
  1171. #endif  // DirectX 8.0 content
  1172.  
  1173.  
  1174. #endif // not defined _BDATYPES_
  1175.  
  1176. // end of file -- bdatypes.h
  1177.